package core2.ch02xml;

import org.w3c.dom.*;
import javax.xml.parsers.*;
import javax.xml.transform.*;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.*;

public class WriteXml {
	private Document document;

	private String filename;

	public WriteXml(String name) throws ParserConfigurationException {
		filename = name;
		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
		DocumentBuilder builder = factory.newDocumentBuilder();
		document = builder.newDocument();
	}

	public void toWrite(String mytitle, String mycontent) {
		Element root = document.createElement("Services");
		document.appendChild(root);
//		Element title = document.createElement("Title");
//		title.appendChild(document.createTextNode(mytitle));
//		root.appendChild(title);
		Element content = document.createElement("Service");
		content.appendChild(document.createTextNode(mycontent));
		root.appendChild(content);
	}

	public void toSave() {
		try {
			TransformerFactory tf = TransformerFactory.newInstance();
			Transformer transformer = tf.newTransformer();
			DOMSource source = new DOMSource(document);
			transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
			transformer.setOutputProperty(OutputKeys.INDENT, "yes");
			PrintWriter pw = new PrintWriter(new FileOutputStream(filename));
			StreamResult result = new StreamResult(pw);
			transformer.transform(source, result);
		} catch (TransformerException mye) {
			mye.printStackTrace();
		} catch (IOException exp) {
			exp.printStackTrace();
		}
	}

	public static void main(String args[]) {
		try {
			WriteXml myxml = new WriteXml(
					"src\\parse\\xml\\readxml.xml");
			myxml.toWrite("������Ŀ", "��������");
			myxml.toSave();
			System.out.print("Your writing is successful.");
		} catch (ParserConfigurationException exp) {
			exp.printStackTrace();
			System.out.print("Your writing is failed.");
		}
	}
}
